1. Technical Field
The present invention relates in general to the field of information processing systems. In particular, the present invention relates to a method and system for a plug and play (PnP) operating system that dynamically configures, activates and deactivates PnP devices. More particularly, the present invention relates to a plug and play (PnP) operating system that may dynamically modify the configuration of PnP devices. Still more particularly, the present invention relates to a method and system that provides all peripheral component interconnect devices (PCI) within a computer system to have interrupts assigned.
2. Description of the Related Art
Computer systems, such as personal computers, are increasingly being designed and constructed full-featured, with many types of peripheral devices integrated with such computers systems. Peripheral devices, such as mouse, modem, audio, video, memory and input/output ports are now standard within such computer systems. As a result of having so many peripheral devices integrated within computer systems, system resources, such as direct memory access (DMA) channels, memory, input/output ports, and hardware interrupt request (IRQ) signals, are becoming increasingly constrained, which diminishes or eliminates altogether the possibility of expanding the computer system.
One technique which attempts to manage system resources includes the so-called "Plug and Play" protocols which are composed of a set of specifications that allows a computer system to configure itself automatically to work with peripherals such as monitors, modems, printers, and so forth. The ISA (Industry Standard Architecture) Plug and Play specification allows devices to outline dependencies in resources, as well as sub-optimal configurations. A user can "plug" in a peripheral and "play" it without manually configuring the system. Plug and Play requires both a BIOS that supports Plug and Play, and a Plug and Play device, which can either be located on a system board or in an expansion slot. (BIOS is an acronym for "Basic Input/Output System." On personal computer compatible computers, BIOS is composed of the set of essential software routines that test hardware at start-up, start the operating system, and support the transfer of data among hardware devices. The BIOS is stored in read-only memory (ROM), so that it can be executed when power is applied to the computer. Although critical to performance, the BIOS is usually "invisible" to computer users.)
Today's personal computer operating systems (OS's) are more capable of configuring Plug and Play (PnP) devices than utilizing a system Power-On Self Test (POST) within the BIOS. A disadvantage of using POST within the Basic Input/Output System (BIOS) is that is constrained on executable program space wherein the majority of the POST runs within a 64 KB segment. Architecturally, this could be expanded, but the hardware requirements are not commercially feasible in today's computer market. Comparatively, the operating system has limitless room for its configuration software and dynamic data structures. Therefore, some operating systems have a plug and play (PnP) feature which allows the operating system to dynamically configure, activate (i.e. turn on) and deactivate PnP devices, as well as dynamically modify the configuration of these devices. However, for compatibility reasons, the operating system should only dynamically change a device's configuration if the operating system was initially responsible for activating the device. Therefore, if POST configures a device, the operating system will not have the flexibility to change the configuration later.
BIOS vendors, at the suggestion of the Microsoft Corporation, have implemented an option (accessible through the BIOS Setup Utility) to control whether POST configures PnP devices (hereafter referred to as a PnP operating system option). When the PnP operating system option is turned on, POST assumes that a PnP operating system is present on the system and will avoid activating PnP devices. When the PnP operating system option is not turned on, POST controls the configuration of all PnP devices in the system, typically configuring and activating all devices it can. Therefore, it would be desirable to check for the presence of a PnP operating system option on a hard disk and have the PnP operating system option when turned on, configure and activate the PnP devices when POST turns control over to the operating system and the PnP devices are turned off. Additionally, if the boot device happens to be a diskette, CD-ROM, etc. where configuration software is not present, the end user has no way of configuring and activating the devices, for example a CD-ROM containing diagnostic programs. If the devices are turned off, they can't be tested. Therefore it would be desirable to not require an end user to manually turn off the PnP operating system option, perform the desired task, and turn the option back on. Lastly, the method and system of the present invention makes every effort to assign an interrupt request signal (IRQ) to Peripheral Component Interconnect (PCI) devices. Currently, PnP operating systems are not capable of assigning IRQ signals to PCI devices, so the BIOS is required to make the assignment before handing control to the operating system.